#pragma once

#include "Render/Shader/GlobalShader.h"

class LocalVertexShader : public RHIShader
{
	DECLARE_SHADER_BEGIN(LocalVertexShader)

	DECLARE_SHADER_END()
};

class LocalFragmentShader : public RHIShader
{
	DECLARE_SHADER_BEGIN(LocalFragmentShader)

	DECLARE_SHADER_END()
};

class ShadowVertexShader : public RHIShader
{
	DECLARE_SHADER_BEGIN(ShadowVertexShader)

	DECLARE_SHADER_END()
};

class ShadowGeometryShader : public RHIShader
{
	DECLARE_SHADER_BEGIN(ShadowGeometryShader)

	DECLARE_SHADER_END()
};

class DeferredVertexShader : public RHIShader
{
	DECLARE_SHADER_BEGIN(DeferredVertexShader)

	DECLARE_SHADER_END()
};

class DeferredFragmentShader : public RHIShader
{
	DECLARE_SHADER_BEGIN(DeferredFragmentShader)

	DECLARE_SHADER_END()
};

class MrtVertexShader : public RHIShader
{
	DECLARE_SHADER_BEGIN(MrtVertexShader)

	DECLARE_SHADER_END()
};

class MrtFragmentShader : public RHIShader
{
	DECLARE_SHADER_BEGIN(MrtFragmentShader)

	DECLARE_SHADER_END()
};

class SkyboxVertexShader : public RHIShader
{
	DECLARE_SHADER_BEGIN(SkyboxVertexShader)

	DECLARE_SHADER_END()
};

class SkyboxFragmentShader : public RHIShader
{
	DECLARE_SHADER_BEGIN(SkyboxFragmentShader)

	DECLARE_SHADER_END()
};

class CubeCloudVertexShader : public RHIShader
{
	DECLARE_SHADER_BEGIN(CubeCloudVertexShader)

	DECLARE_SHADER_END()
};

class CubeCloudFragmentShader : public RHIShader
{
	DECLARE_SHADER_BEGIN(CubeCloudFragmentShader)

	DECLARE_SHADER_END()
};

class NoiseCloudVertexShader : public RHIShader
{
	DECLARE_SHADER_BEGIN(NoiseCloudVertexShader)

	DECLARE_SHADER_END()
};

class NoiseCloudFragmentShader : public RHIShader
{
	DECLARE_SHADER_BEGIN(NoiseCloudFragmentShader)

	DECLARE_SHADER_END()
};


